package redis

import "time"

func Del(db int, key string) int64 {
	ret, err := GetDB(db).Del(key).Result()
	if err != nil && RunErrHandle(err) {
		return Del(db, key)
	}
	return ret
}

func Exits(db int, key string) int64 {
	ret, err := GetDB(db).Exists(key).Result()
	if err != nil && RunErrHandle(err) {
		return Exits(db, key)
	}
	return ret
}

func Get(db int, key string) string {
	ret, err := GetDB(db).Get(key).Result()
	if err != nil && RunErrHandle(err) {
		return Get(db, key)
	}
	return ret
}

func Set(db int, key string, value any, ttl time.Duration) string {
	ret, err := GetDB(db).Set(key, value, ttl).Result()
	if err != nil && RunErrHandle(err) {
		return Set(db, key, value, ttl)
	}
	return ret
}

func SetNx(db int, key string, value any, ttl time.Duration) bool {
	//不存在才设置 过期时间 nx ex
	ret, err := GetDB(db).SetNX(key, value, ttl).Result()
	if err != nil && RunErrHandle(err) {
		return SetNx(db, key, value, ttl)
	}
	return ret
}
